package cn.edu.fzu.homemaking.wallet.service;

import cn.edu.fzu.homemaking.wallet.domain.dto.User;
import cn.edu.fzu.homemaking.wallet.domain.entity.MoneyWater;
import cn.edu.fzu.homemaking.wallet.domain.entity.Wallet;
import cn.edu.fzu.homemaking.wallet.domain.enums.ChargeModeEnum;

import java.math.BigDecimal;
import java.util.List;

public interface WalletService {

    /** 根据用户id获取钱包 **/
    Wallet getByUserId(Long userId);


    /** 转账 **/
    void transfer(User from, String fromUserType, Long to, BigDecimal money, String description);


    MoneyWater getWaterDetail(Long userId, Long id);


    /** 充值 **/
    void recharge(User user, BigDecimal money);


    void initWater(Long userId);


    void dropTemplate(Long userId);


    List<MoneyWater> listWaterTemplate(Long userId, ChargeModeEnum chargeMode);

}
